package com.ly.heart.service;

import java.util.List;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ly.common.core.domain.AjaxResult;
import com.ly.heart.domain.KingOtherInboundEntity;
import com.ly.heart.domain.KingOtherInboundMaterialEntity;
import com.ly.heart.domain.dto.KingOtherInboundQueryDto;

/**
 * 金蝶-其他入库单Service接口
 *
 * @author cxl
 * @date 2024-08-03
 */
public interface IKingOtherInboundService extends IService<KingOtherInboundEntity> {

    /**
     * 查询其他入库单列表，带分页参数
     * @param queryDto
     * @return
     */
    AjaxResult getOtherInboundPageList(KingOtherInboundQueryDto queryDto);

    /**
     * 暂存其他入库单
     * @param kingOtherInbound
     * @return
     */
    AjaxResult draft(KingOtherInboundEntity kingOtherInbound);

    /**
     * 提交其他入库单
     * @param kingOtherInbound
     * @return
     */
    AjaxResult submit(KingOtherInboundEntity kingOtherInbound);

    /**
     * 修改其他入库单
     * @param kingOtherInbound
     * @return
     */
    AjaxResult update(KingOtherInboundEntity kingOtherInbound);

    /**
     * 其他入库单审批完成后调用此方法，更新即时库存
     * @param materialLists
     */
    public void updateRealTimeInventory(List<KingOtherInboundMaterialEntity> materialLists);

    /**
     * 查询金蝶-其他入库单
     *
     * @param id 金蝶-其他入库单ID
     * @return 金蝶-其他入库单
     */
    public KingOtherInboundEntity selectKingOtherInboundEntityById(String id);

    /**
     * 查询金蝶-其他入库单列表
     *
     * @param kingOtherInboundEntity 金蝶-其他入库单
     * @return 金蝶-其他入库单集合
     */
    public List<KingOtherInboundEntity> selectKingOtherInboundEntityList(KingOtherInboundEntity kingOtherInboundEntity);

    /**
     * 新增金蝶-其他入库单
     *
     * @param kingOtherInboundEntity 金蝶-其他入库单
     * @return 结果
     */
    public int insertKingOtherInboundEntity(KingOtherInboundEntity kingOtherInboundEntity);

    /**
     * 修改金蝶-其他入库单
     *
     * @param kingOtherInboundEntity 金蝶-其他入库单
     * @return 结果
     */
    public int updateKingOtherInboundEntity(KingOtherInboundEntity kingOtherInboundEntity);

    /**
     * 批量删除金蝶-其他入库单
     *
     * @param ids 需要删除的金蝶-其他入库单ID
     * @return 结果
     */
    public int deleteKingOtherInboundEntityByIds(String[] ids);

    /**
     * 删除金蝶-其他入库单信息
     *
     * @param id 金蝶-其他入库单ID
     * @return 结果
     */
    public int deleteKingOtherInboundEntityById(String id);
}
